package com.example.classweatherforecast

/**
 * 城市编码管理器，用于管理城市名称与城市编码的映射关系
 */
class CityCodeManager {
    // 城市名称和编码的映射表
    private val cityCodeMap = mapOf(
        "北京" to "101010100",
        "上海" to "101020100",
        "广州" to "101280101",
        "深圳" to "101280601",
        "重庆" to "101040100",  // 当前默认城市
        "天津" to "101030100",
        "南京" to "101190101",
        "杭州" to "101210101",
        "武汉" to "101200101",
        "成都" to "101270101",
        "西安" to "101110101",
        "青岛" to "101120201",
        "大连" to "101070101",
        "厦门" to "101230201",
        "长沙" to "101250101"
    )
    
    /**
     * 获取所有城市名称列表
     */
    fun getAllCities(): List<String> {
        return cityCodeMap.keys.toList()
    }
    
    /**
     * 根据城市名称获取城市编码
     * @param cityName 城市名称
     * @return 城市编码，如果找不到则返回默认城市（重庆）的编码
     */
    fun getCityCode(cityName: String): String {
        return cityCodeMap[cityName] ?: cityCodeMap["重庆"] ?: "101040100"
    }
    
    /**
     * 根据城市编码获取城市名称
     * @param cityCode 城市编码
     * @return 城市名称，如果找不到则返回空字符串
     */
    fun getCityName(cityCode: String): String {
        return cityCodeMap.entries.find { it.value == cityCode }?.key ?: ""
    }
    
    /**
     * 获取默认城市
     */
    fun getDefaultCity(): String {
        return "重庆"
    }
    
    /**
     * 获取默认城市编码
     */
    fun getDefaultCityCode(): String {
        return getCityCode(getDefaultCity())
    }
}